﻿'********************************************************************************
'*
'*      切断　フォーム
'*      LTF A53
'*      File Name : frmStartCompleteCut.vb
'*      Title     : 切断画面
'*      機能    　：切断
'*
'********************************************************************************
'----------------------------------<<修正履歴>>----------------------------------
'ﾊﾞｰｼﾞｮﾝ   日付       作業者        ｺﾒﾝﾄ
'--------- ---------- ------------ -----------------------------------------------
' V1.0.0   2017/06/19 遠藤尚人      新規作成
' V3.0.0   2017/12/25 M.Sagawa      北京対応
' V4.0.0   2018/01/04 miao          北京対応（廃棄フレーム枚数の追加）
'********************************************************************************
Imports ICtagControl

Public Class frmStartCompleteCut

    '前工程の計上データ（完了MSラックNo）
    Private Const COMP_RACK As String = "COMP MS RACK NO" 'RACK NO->COMP MS RACK NO

    '金型カテゴリー名
    Private Const MOLD_CATEGORY_NAME As String = "MJLF"

    '>>2018/1/31 佐川 キャリア交換対応
    '実行モード
    '0:表示 1:着工 2:製造完成 3:計上完成
    Private execMode As String = VIEW
    '<<2018/1/31 佐川 キャリア交換対応

    '>>2018/2/13 大賀 サンプル数量対応
    Private AggregatePKG As String = String.Empty
    '>>2018/2/13 大賀 サンプル数量対応

    '>> 2018/02/15 佐川 金型連続使用チェック
    Private moldInspectionFlg As Boolean = False

    Private dtMoldInspectionData As New DataTable

    Dim outMachine As InSiteWebService.OutViewMachine
    '金型チェックフラグ
    Dim isMoldCheckFlg As Boolean = False
    '金型検査フラグ
    Dim isInspectionFlg As Boolean = False
    '<< 2018/02/15 佐川 金型連続使用チェック
    ''Add Miaojf 2019/11/22 Begin
    'Overrides Sub selectTab()

    '    tabBase.SelectedIndex = 2

    '    Me.UpdateStyles()
    'End Sub
    'Public Overrides Sub SetFocus()

    '    btnBarCode1.Enabled = True
    '    btnBarCode1.PerformClick()
    '    'txt0002.Enabled = True
    '    'txt0002.Focus()
    'End Sub
    'Add Miaojf 2019/11/22 END
    '照合結果測定
    Public Overrides Sub SetPassScore()
        PASS_SCORE = 6
        ReDim m_iScore(PASS_SCORE - 1)
        ' 情報タブ「受入MSラックNo1」,「受入MSラックNo2」設備タブ「金型1」,「金型2」,「金型3」のチェックを行う
        m_iScore = {PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK}

    End Sub

    '照合結果クリア
    Public Overrides Sub InitualizeCollData()
        ' 情報タブ「受入MSラックNo1」,「受入MSラックNo2」設備タブ「金型1」,「金型2」,「金型3」のチェックを行う
        '>>2018/2/6 佐川 RSB確認結果一覧No32
        ' 前工程のラックNo2が空の項目はチェック済み(1)に設定する。
        If IcTag.container2.Equals("") Then
            m_iScore = {PASS_SCORE_WAIT_CHECK, PASS_SCORE_CHECKED, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK}
        Else
            m_iScore = {PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK, PASS_SCORE_WAIT_CHECK}
        End If
        '<<2018/2/6 佐川 RSB確認結果一覧No32

    End Sub

    'イベント設定
    Public Overrides Sub SetHandler()
        LNNG_MSG_FLG = True
        '受入MSラックNo1
        AddHandler txt0002.KeyPress, AddressOf beforeRackNo_KeyPress
        '受入MSラックNo2
        AddHandler txt0102.KeyPress, AddressOf beforeRackNo_KeyPress
        '受入MSラックNo バーコードボタン
        AddHandler btnBarCode1.Click, AddressOf btnMsRackNo_Click '2018/2/22 佐川 ラックNo入力動作を統一

        '適用金型　再読込ボタン
        AddHandler btnRefresh.Click, AddressOf btnRefresh_Click

        '>> 2018/02/15 佐川 金型連続使用チェック
        '金型検査ボタン
        AddHandler btnMoldInspection.Click, AddressOf btnMoldInspection_Click
        '<< 2018/02/15 佐川 金型連続使用チェック

        ' >> 20180710 佐川 ラックNo途入力改善
        AddHandler txt0002.Click, AddressOf rackInputFocus
        AddHandler lbl0002.Click, AddressOf rackInputFocus
        AddHandler txt0102.Click, AddressOf rackInputFocus
        AddHandler lbl0102.Click, AddressOf rackInputFocus
        ' << 20180710 佐川 ラックNo途入力改善

    End Sub

    'Lot Noでデータベースからデータを取得する
    Public Overrides Sub GetDataByIcTag()

        '初期化
        InputDataClear()

        'ICタグのデータで画面を設定する
        SetFromTag()

        'ロット部のセット
        setGridViewLot()

        If String.IsNullOrEmpty(IcTag.szUID) Then
            IcTag = LastTag
        End If

        '製造条件取得
        setJyokenData()

        '現物型式
        setDetailData()

        If IcTag.Status = TagProcessStatus.Ready Then
            '設備部の値を製造条件から設定
            For Each dr In dtJyokenData.Rows
                If dr(KOMOKUNAME).Equals(lbl0300.Tag) Then
                    '適用金型1の設定
                    lbl0302.Text = DBNullTOblank(dr(KOMOKUDATA)) 'UPD MIAO 2018/11/1
                ElseIf dr(KOMOKUNAME).Equals(lbl0400.Tag) Then
                    '適用金型2の設定
                    lbl0402.Text = DBNullTOblank(dr(KOMOKUDATA)) 'UPD MIAO 2018/11/1
                ElseIf dr(KOMOKUNAME).Equals(lbl0500.Tag) Then
                    '適用金型3の設定
                    lbl0502.Text = DBNullTOblank(dr(KOMOKUDATA)) 'UPD MIAO 2018/11/1
                ElseIf dr(KOMOKUNAME).Equals(lbl0600.Tag) Then
                    '適用金型4の設定
                    lbl0602.Text = DBNullTOblank(dr(KOMOKUDATA)) 'UPD MIAO 2018/11/1
                    '>>2018/2/13 大賀 サンプル数量対応
                ElseIf dr(KOMOKUNAME).Equals(AGGREGATE_PKG) Then
                    AggregatePKG = DBNullTOblank(dr(KOMOKUDATA)) 'UPD MIAO 2018/11/1
                    '<<2018/2/13 大賀 サンプル数量対応
                End If
            Next

            '金型チェック
            checkMold()

            For Each dr In dtDetailData.Rows
                If dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG).Equals(lbl0100.Tag) Then
                    '受入MSラックNo
                    txt0002.Text = dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL)
                End If
            Next
            'DEL 苗 2018/1/24 BEGIN
            ''ADD 苗 2018/1/5 BEGIN
            'getPreInfoTabData()
            ''ADD 苗 2018/1/5 END
            'DEL 苗 2018/1/24 END

        ElseIf IcTag.Status = TagProcessStatus.Processing Or IcTag.Status = TagProcessStatus.ManufComplete Then
            'UPD MIAO 2018/12/12 BEGIN
            '設備・特殊部に現物型式をセット
            For Each dr In dtDetailData.Rows
                If DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG)).Equals(lbl0300.Tag) Then
                    '適用金型1の設定
                    '製造条件
                    lbl0302.Text = DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CONDITION))
                    '現物型式
                    txt0303.Text = DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL))
                ElseIf DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG)).Equals(lbl0400.Tag) Then
                    '適用金型2の設定
                    '製造条件
                    lbl0402.Text = DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CONDITION))
                    '現物型式
                    txt0403.Text = DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL))
                ElseIf DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG)).Equals(lbl0500.Tag) Then
                    '適用金型3の設定
                    '製造条件
                    lbl0502.Text = DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CONDITION))
                    '現物型式
                    txt0503.Text = DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL))
                ElseIf DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG)).Equals(lbl0600.Tag) Then
                    '適用金型4の設定
                    '製造条件
                    lbl0602.Text = DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CONDITION))
                    '現物型式
                    txt0603.Text = DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL))
                ElseIf DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG)).Equals(lbl0100.Tag) Then
                    If DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_SEQ)) = 1 Then
                        '受入MSラックNo1
                        txt0002.Text = DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL))
                    Else
                        '受入MSラックNo2
                        txt0102.Text = DBNullTOblank(dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL))
                    End If
                    'DEL 苗 2018/1/24 BEGIN
                    'ElseIf dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG).Equals(lblFrameCountText.Tag) Then
                    '    '適用金型4の設定
                    '    '製造条件
                    '    lblFrameCount.Text = dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL)
                    'DEL 苗 2018/1/24 END
                End If
            Next
        Else
            ' 画面の初期設定側でエラー処理をするのでここでは無処理
        End If
        'UPD MIAO 2018/12/12 END
        '>>2018/2/13 大賀 サンプル数量対応
        If IcTag.Status = TagProcessStatus.Ready Then
            setAQL()
        Else
            ' 履歴明細から読み出し
            readDetailSampleNum()
            setAQL()
        End If
        '<<2018/2/13 大賀 サンプル数量対応

        getHeadData()

        With m_dtMat
            If .Rows.Count > 0 Then
                '着完日時
                DisplayDate()
            Else
                If m_dtMat.Columns.Count > 0 Then
                    .Rows.Add()
                Else
                    .Columns.Add("BEGIN_TIME")
                    .Rows.Add()
                End If
            End If
        End With
        'ADD 苗 2018/1/24 BEGIN
        'L_TAG_LOTDATAからIC廃棄のフレーム枚数を画面に設定
        lblFrameCount.Text = IcTag.iDisposalFrmNum
        'ADD 苗 2018/1/24 END

    End Sub
    Private Sub setAQL()
        Dim st As String = m_cSamplingDef.getSamplingMessageLTF(IcTag.szProcsCD, AggregatePKG, g_EQUIP_NO, IcTag.iInput.ToString())
        Dim samplenum As String = ""
        If lblShape.Text.Substring(0, 8) = "020P2F-8" Then
            samplenum = "16"
        End If

        Select Case lblShape.Text.Substring(0, 6)
            Case "144P6Q"
                samplenum = "3"
            Case "032P6U", "048P6Q"
                samplenum = "6"
            Case "052P6A", "064P6Q"
                samplenum = "5"
            Case "064P6U", "080P6Q", "100P6Q"
                samplenum = "4"
        End Select

        If samplenum <> "" Then
            If st.Contains("24") Then
                st = st.Replace("24个/LOT", samplenum & "个/Shot")
            ElseIf st.Contains("25") Then
                st = st.Replace("25个/LOT", samplenum & "个/Shot")
            End If
        End If
        lblSampleText.Text = st
    End Sub
    '初期化、背景色の設定
    Public Sub InputDataClear()

        '>>2018/1/30 佐川 キャリア交換対応
        execMode = VIEW
        '<<2018/1/30 佐川 キャリア交換対応

        'ロットタブの初期化
        clearActualModel()

        '適用金型1
        lbl0302.Text = String.Empty
        txt0303.Text = String.Empty
        lbl0303.BackColor = Drawing.SystemColors.Control
        txt0303.BackColor = Drawing.SystemColors.Control
        lbl0302.BackColor = Drawing.SystemColors.Control


        '適用金型2
        lbl0402.Text = String.Empty
        txt0403.Text = String.Empty
        lbl0403.BackColor = Drawing.SystemColors.Control
        txt0403.BackColor = Drawing.SystemColors.Control
        lbl0402.BackColor = Drawing.SystemColors.Control

        '適用金型3
        lbl0502.Text = String.Empty
        txt0503.Text = String.Empty
        lbl0503.BackColor = Drawing.SystemColors.Control
        txt0503.BackColor = Drawing.SystemColors.Control
        lbl0502.BackColor = Drawing.SystemColors.Control

        '適用金型4
        lbl0602.Text = String.Empty
        txt0603.Text = String.Empty
        lbl0603.BackColor = Drawing.SystemColors.Control
        txt0603.BackColor = Drawing.SystemColors.Control
        lbl0602.BackColor = Drawing.SystemColors.Control


        '受入MSラックNo1
        txt0002.Text = String.Empty
        txt0002.BackColor = BARCODE_INIT_COLOR
        lbl0002.BackColor = BARCODE_INIT_COLOR

        '受入MSラックNo2
        txt0102.Text = String.Empty
        txt0102.BackColor = BARCODE_INIT_COLOR
        lbl0102.BackColor = BARCODE_INIT_COLOR

        '開始作業者No
        txtOptNoStt.Text = String.Empty
        '終了作業者No
        txtOptNoEnd.Text = String.Empty

        '>>2018/2/15 大賀 サンプル数量対応 計上完成後のクリア漏れ
        lblSampleText.Text = String.Empty
        '<<2018/2/15 大賀 サンプル数量対応 計上完成後のクリア漏れ

        '>> 2018/02/15 佐川 金型連続使用チェック
        '金型チェックフラグ初期化
        isMoldCheckFlg = False
        isInspectionFlg = False
        btnMoldInspection.Text = getMsgStr("MSG10026")
        btnMoldInspection.Enabled = False
        '<< 2018/02/15 佐川 金型連続使用チェック

    End Sub

    '画面データ保存（着工時）
    Public Overrides Function SaveEquipMat(ByRef szBeginTime As DateTime) As Boolean

        '>>2018/1/31 佐川 キャリア交換対応
        execMode = BEGIN
        '<<2018/1/31 佐川 キャリア交換対応

        If saveDetail(BEGIN) < 0 Then
            Return False
        Else
            Return True
        End If

        Return True
    End Function

    '画面データ保存（製造完成）
    Public Overrides Function SaveCompleteInfo(Optional ByVal status As ProcessStatus = ProcessStatus.ManufComplete) As Integer

        '>>2018/1/31 佐川 キャリア交換対応
        execMode = COMPLETE
        '<<2018/1/31 佐川 キャリア交換対応

        dtDBUpd.Clear()
        Return saveDetail(COMPLETE)
    End Function

    '画面データ保存(計上完成)
    Public Overrides Function SaveTotalInfo() As Integer

        '>>2018/1/31 佐川 キャリア交換対応
        execMode = TOTAL
        '<<2018/1/30 佐川 キャリア交換対応

        '>>2018/2/13 大賀 サンプル数量対応
        m_cSamplingDef.updateSampleingLot(IcTag.szProcsCD, AggregatePKG, g_EQUIP_NO, IcTag.szLotNo)
        '<<2018/2/13 大賀 サンプル数量対応

        dtDBUpd.Clear()
        Return saveDetail(TOTAL)
    End Function

    '工程明細テーブル処理
    Private Function saveDetail(ByVal type As String) As Integer
        'ロットタブのデータセット
        setLotData()
        Dim rowsCnt As Integer = dtDBUpd.Rows.Count
        Dim addIndex As Integer = 0

        '設備タブのデータセット
        '適用金型1
        dtDBUpd.Rows.Add()
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl0300.Tag
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 1
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 1
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CONDITION) = lbl0302.Text
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt0303.Text
        addIndex += 1

        '適用金型2
        dtDBUpd.Rows.Add()
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl0400.Tag
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 1
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 2
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CONDITION) = lbl0402.Text
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt0403.Text
        addIndex += 1

        '適用金型3
        dtDBUpd.Rows.Add()
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl0500.Tag
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 1
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 3
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CONDITION) = lbl0502.Text
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt0503.Text
        addIndex += 1

        '適用金型4
        dtDBUpd.Rows.Add()
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl0600.Tag
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 1
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 4
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CONDITION) = lbl0602.Text
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt0603.Text
        addIndex += 1

        '情報タブのデータセット
        '受入MSラックNo1
        dtDBUpd.Rows.Add()
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl0100.Tag
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 0
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 1
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt0002.Text
        addIndex += 1

        '受入MSラックNo2
        dtDBUpd.Rows.Add()
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lbl0100.Tag
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 0
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 2
        dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = txt0102.Text
        addIndex += 1

        If type <> BEGIN Then
            '1/30 苗 履歴に保存するようにコメントを解除する
            '廃棄フレーム数
            dtDBUpd.Rows.Add()
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG) = lblFrameCountText.Tag
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG_FLG) = 1
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_SEQ) = 1
            dtDBUpd.Rows(rowsCnt + addIndex)(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL) = lblFrameCount.Text
            addIndex += 1
        End If

        '>>2018/2/13 大賀 サンプル数量対応
        'サンプル数量
        addIndex = writeDetailSampleNum(rowsCnt, addIndex)
        '<<2018/2/13 大賀 サンプル数量対応


        '>> 2018/02/15 佐川 金型連続使用チェック
        Dim retVal As Integer = m_cEquipMat.SaveDetail(lotNo, IcTag.szProcsCD, type,
                                      m_szTable, dtDBUpd, m_dtHeader,
                                      m_cIdohyo.EquipInfo.szEquipNo, serverTime)


        '製造完成or計上完成の場合、かつ金型検査ボタンが押下された場合は、更新処理を行う。
        If execMode.Equals(COMPLETE) Or execMode.Equals(TOTAL) Then
            If isInspectionFlg Then
                '製造完成or計上完成の場合は、金型検査履歴情報の更新を行う
                Dim mold As New DataTable
                mold.Columns.Add("MOLD_MODEL")
                mold.Columns.Add("MOLD_LOT_NO")
                Dim addCoount As Integer = 0
                For Each item As InSiteWebService.Machine_SubMachine In outMachine.MachineInf.SubMachineInf
                    If item.MachineCategory.Equals(MOLD_CATEGORY_NAME) Then
                        mold.Rows.Add()
                        mold.Rows(addCoount)("MOLD_MODEL") = item.MachineTypeCode
                        mold.Rows(addCoount)("MOLD_LOT_NO") = item.Name
                        addCoount += 1
                    End If
                Next
                m_cDbMold.updateMoldInspectionCut(lblProcessCD.Text, g_EQUIP_NO, mold, lblBeginTime.Text)
                isInspectionFlg = False

                '製造完成で金型検査情報を登録した場合は、検査ボタンを押下不可にする。
                If execMode.Equals(COMPLETE) Then
                    btnMoldInspection.Enabled = False
                End If
            End If
        End If

        Return retVal
        '<< 2018/02/15 佐川 金型連続使用チェック

    End Function

    '計上完成時チェック処理
    Public Overrides Function EndCheck() As Boolean
        '>>2018/2/15 佐川　空白チェックの条件ictagから取得するよう修正
        'Dim preRackNoCount As Double = 0 'ADD 苗 2018/1/11
        'For Each dr In dtPreDetailData.Rows
        '    If dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG).Equals(COMP_RACK) Then
        '        '前工程のラックNoの数をカウント
        '        If dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL).Equals("") = False Then
        '            preRackNoCount += 1
        '        End If
        '    End If
        'Next
        '<<2018/2/15 佐川　空白チェックの条件ictagから取得するよう修正

        '受入MSラックNo1空白チェック
        If Not checkBlank(txt0002.Text, lbl0100.Text) Then
            checkColor(txt0002, False, lbl0002.Name)
            Return False
        End If
        'ADD 苗 2018/1/11 BEGIN
        '>>2018/2/15 佐川　空白チェックの条件ictagから取得するよう修正
        If Not IcTag.container2.Equals("") Then
            '<<2018/2/15 佐川　空白チェックの条件ictagから取得するよう修正
            'If preRackNoCount > 1 Then
            '受入MSラックNo2空白チェック
            If Not checkBlank(txt0102.Text, lbl0100.Text) Then
                checkColor(txt0102, False, lbl0102.Name)
                Return False
            End If
        End If
        'ADD 苗 2018/1/11 END

        ' B-Site送信情報に設定
        'MyBase.m_iSelfCheck = Integer.Parse(lblSelfCheckQty.Text)

        IcTag.iDisposalFrmNum = lblFrameCount.Text 'ADD 苗 2018/1/24

        '>> 2018/02/19 佐川 bSiteから最新の金型情報を取得しチェックを行う
        checkMold()
        If m_iScore(2) = 0 OrElse m_iScore(3) = 0 OrElse m_iScore(4) = 0 Then
            Return False
        End If
        '<< 2018/02/19 佐川 bSiteから最新の金型情報を取得しチェックを行う

        '>> 2018/02/15 佐川 金型連続使用チェック
        'bSiteから設備情報を再取得し、金型チェックを行う。
        If Not isInspectionFlg Then
            '金型変更チェックを行う
            checkMoldInspection()
            If isMoldCheckFlg Then
                isInspectionFlg = False
                btnMoldInspection.Text = getMsgStr("MSG10026")
                btnMoldInspection.Enabled = True
                setCheckInfo(Label3.Text & getMsgStr("MSG10026"))
                Return False
            End If
        End If
        '<< 2018/02/15 佐川 金型連続使用チェック

        Return True
    End Function

    '画面項目の表示切替
    Public Overrides Sub ConfScreenItem()
        If txtLotNo.TextLength > 0 Then
            If IcTag.Status = TagProcessStatus.Ready Then
                '着工待ち   
                btnBarCode1.Enabled = True

                '受入MSラックNo1
                txt0002.BackColor = BARCODE_INIT_COLOR
                lbl0002.BackColor = BARCODE_INIT_COLOR
                '受入MSラックNo2
                txt0102.BackColor = BARCODE_INIT_COLOR
                lbl0102.BackColor = BARCODE_INIT_COLOR
            Else
                '着工中
                btnBarCode1.Enabled = False

                '受入MSラックNo1
                txt0002.BackColor = NORMAL_INIT_COLOR
                lbl0002.BackColor = NORMAL_INIT_COLOR
                '受入MSラックNo2
                txt0102.BackColor = NORMAL_INIT_COLOR
                lbl0102.BackColor = NORMAL_INIT_COLOR
            End If
            '>> 2018/02/15 佐川 金型連続使用チェック
            '金型点検ボタン
            btnMoldInspection.Enabled = isMoldCheckFlg
            '<< 2018/02/15 佐川 金型連続使用チェック
        End If

    End Sub

    '金型チェック
    Private Sub checkMold()

        Dim result As Boolean = True
        Dim bSiteCount As Double = 3

        ' 製造条件の指定なしの場合はノーエラー
        If String.IsNullOrEmpty(lbl0302.Text) And String.IsNullOrEmpty(lbl0402.Text) And String.IsNullOrEmpty(lbl0502.Text) And String.IsNullOrEmpty(lbl0602.Text) Then
            m_iScore(2) = PASS_SCORE_CHECKED
            m_iScore(3) = PASS_SCORE_CHECKED
            m_iScore(4) = PASS_SCORE_CHECKED
            m_iScore(5) = PASS_SCORE_CHECKED
            Exit Sub
        End If

        'B-Site ViewMachineService
        Dim clientProcCd = GetBsiteClientString()
        'B-Siteからデータを取得
        '>> 2018/02/15 佐川 金型連続使用チェック
        outMachine = getViewLotService(clientProcCd)
        Dim MaterialList = getSubMachineListByCategory(outMachine, MOLD_CATEGORY_NAME)
        '<< 2018/02/15 佐川 金型連続使用チェック

        Dim checkResult As Boolean = False

        'bSiteから値が取得できない場合
        If MaterialList.Count = 0 Then

            '適用金型1
            setCheckInfo(getMsgStr("MSG00101", lbl0300.Text))
            txt0303.BackColor = ERROR_INIT_COLOR
            lbl0303.BackColor = ERROR_INIT_COLOR
            txt0303.Text = String.Empty
            m_iScore(2) = PASS_SCORE_WAIT_CHECK

            '適用金型2
            txt0403.BackColor = ERROR_INIT_COLOR
            lbl0403.BackColor = ERROR_INIT_COLOR
            txt0403.Text = String.Empty
            m_iScore(3) = PASS_SCORE_WAIT_CHECK

            '適用金型3
            txt0503.BackColor = ERROR_INIT_COLOR
            lbl0503.BackColor = ERROR_INIT_COLOR
            txt0503.Text = String.Empty
            m_iScore(4) = PASS_SCORE_WAIT_CHECK

            '適用金型4
            txt0603.BackColor = ERROR_INIT_COLOR
            lbl0603.BackColor = ERROR_INIT_COLOR
            txt0603.Text = String.Empty
            m_iScore(5) = PASS_SCORE_WAIT_CHECK

            'Return False
        End If

        '金型を画面に設定
        setMold(MaterialList)

    End Sub

    ' 金型の個別設定
    Private Function setMoldText(conditions As String, textControl As TextBox, labelControl As Label, MachineList As List(Of InSiteWebService.Machine_SubMachine)) As Boolean
        If String.IsNullOrEmpty(conditions) Then
            textControl.Text = String.Empty
        Else
            Dim getData = MachineList.FirstOrDefault(Function(x) x.MachineTypeCode = conditions)
            If getData IsNot Nothing Then
                textControl.Text = getData.MachineTypeCode.Trim
            Else
                textControl.BackColor = ERROR_INIT_COLOR
                labelControl.BackColor = ERROR_INIT_COLOR
                Return False
            End If
        End If
        Return True
    End Function

    '金型の設定
    Private Sub setMold(ByVal outMachine As List(Of InSiteWebService.Machine_SubMachine))
        Dim isError = False
        '適用金型1
        txt0303.Text = String.Empty
        lbl0303.BackColor = Drawing.SystemColors.Control
        txt0303.BackColor = Drawing.SystemColors.Control
        '適用金型2
        txt0403.Text = String.Empty
        lbl0403.BackColor = Drawing.SystemColors.Control
        txt0403.BackColor = Drawing.SystemColors.Control
        '適用金型3
        txt0503.Text = String.Empty
        lbl0503.BackColor = Drawing.SystemColors.Control
        txt0503.BackColor = Drawing.SystemColors.Control
        '適用金型4
        txt0603.Text = String.Empty
        lbl0603.BackColor = Drawing.SystemColors.Control
        txt0603.BackColor = Drawing.SystemColors.Control

        'bSiteから取得した値を画面に設定する
        '金型1に値を設定
        If setMoldText(lbl0302.Text, txt0303, lbl0303, outMachine) Then
            m_iScore(2) = PASS_SCORE_CHECKED
        Else
            m_iScore(2) = PASS_SCORE_WAIT_CHECK
            isError = True
        End If
        '金型2に値を設定
        If setMoldText(lbl0402.Text, txt0403, lbl0403, outMachine) Then
            m_iScore(3) = PASS_SCORE_CHECKED
        Else
            m_iScore(3) = PASS_SCORE_WAIT_CHECK
            isError = True
        End If
        '金型3に値を設定
        If setMoldText(lbl0502.Text, txt0503, lbl0503, outMachine) Then
            m_iScore(4) = PASS_SCORE_CHECKED
        Else
            m_iScore(4) = PASS_SCORE_WAIT_CHECK
            isError = True
        End If
        '金型4に値を設定
        If setMoldText(lbl0602.Text, txt0603, lbl0603, outMachine) Then
            m_iScore(5) = PASS_SCORE_CHECKED
        Else
            m_iScore(5) = PASS_SCORE_WAIT_CHECK
            isError = True
        End If

        If isError Then
            setCheckInfo(getMsgStr("MSG10030", lbl0302.Text, makeViewMachineTypeString(outMachine)))
        End If
    End Sub


    '再読込ボタン押下
    Protected Sub btnRefresh_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        checkMold()
    End Sub

    '受入MSラックNo入力処理
    Private Sub beforeRackNo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)
        '頭に付いている'%'を消す
        Static Dim fIsPercentInput As Boolean = False
        If e.KeyChar = CChar("%") OrElse e.KeyChar = CChar("％") Then
            fIsPercentInput = True
            e.Handled = True
            Exit Sub
        End If
        If fIsPercentInput Then
            fIsPercentInput = False
            e.Handled = True
            Exit Sub
        End If

        '改行コードが入力された場合は、受入MSラックNoのチェックを行う
        If e.KeyChar = vbCr Then
            Dim txtData As TextBox = CType(sender, TextBox)
            txtData.Text = txtData.Text.ToUpper 'Add 苗 2018/4/10

            ''Add 苗 2019/11/24 Begin
            'Dim tmpLotNo As String
            'tmpLotNo = getLotNoByRack(txtData.Text)
            'If txtLotNo.Text = "" Or (tmpLotNo <> "" And txtLotNo.Text <> tmpLotNo) Then
            '    txtLotNo.Text = tmpLotNo
            '    If txtLotNo.Text.Trim() <> "" Then
            '        txtLotNo_KeyPress(txtLotNo, New KeyPressEventArgs(vbCr))
            '        'If AutoManualMode = 0 Then
            '        setRackNo()
            '        ' End If
            '        Exit Sub
            '        End If
            '    End If
            ''Add 苗 2019/11/24 End

            If beforeRackNoCheck(sender, e) Then
                txtData.Enabled = False
                '>>2018/2/6 佐川 RSB確認結果一覧No32
                '受入MSラックNo1が前工程と一致している場合かつ、
                '着工前の場合は受入MSラックNo2を入力可能にしフォーカスを合わせる
                If txtData.Tag.Equals("00") And IcTag.Status = TagProcessStatus.Ready Then
                    '>>2018/2/6 佐川 RSB確認結果一覧No32
                    txt0102.Enabled = True
                    txt0102.Focus()
                    txt0102.BackColor = FOCUS_INIT_COLOR
                    lbl0102.BackColor = FOCUS_INIT_COLOR
                End If
            End If
        End If
    End Sub

    'Private Sub setRackNo()
    '    If IsNothing(IcTag.szLotNo) = False Then
    '        If IcTag.container1 <> "" Then
    '            txt0002.Text = IcTag.container1
    '            beforeRackNoCheck(txt0002, New System.EventArgs())
    '        End If
    '        If IcTag.container2 <> "" Then
    '            txt0102.Text = IcTag.container2
    '            beforeRackNoCheck(txt0102, New System.EventArgs())
    '        End If
    '    End If
    'End Sub

    '受入MSラックNoの入力値と前工程の整合性確認
    Private Function beforeRackNoCheck(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim txtData As TextBox = CType(sender, TextBox)
        Dim lblData As Label = txtData.Parent.Controls.Find(String.Format("lbl{0}02", txtData.Tag.ToString), False)(0)
        Dim idx As Integer = CInt(lblData.Name.Substring(3, 2))
        Dim preConsRackNo As String = String.Empty
        Dim procCheckResult As Boolean = False
        Dim preRackNoCount As Double = 0

        '受入MSラックNo1のみ空白チェックを行う
        If txtData.Tag.Equals("00") Then
            '空白チェック
            If txtData.Text.Equals("") Then
                setCheckInfo(getMsgStr("MSG00020", lbl0100.Text))
                checkColor(sender, False, lblData.Name)
                m_iScore(idx) = 0
                Return False
            End If
        End If


        '前工程のデータと比較
        '>>2018/1/31 佐川 キャリア交換対応
        If txtData.Text.Equals(IcTag.container1) Or txtData.Text.Equals(IcTag.container2) Then
            procCheckResult = True
        End If
        'For Each dr In dtPreDetailData.Rows
        '    If dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG).Equals(COMP_RACK) Then
        '        '前工程のラックNoの数をカウント
        '        preRackNoCount += 1
        '        '受入MSラックNo
        '        preConsRackNo = dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL)
        '        If dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL).Equals(txtData.Text) Then
        '            procCheckResult = True
        '            Exit For
        '        End If
        '    End If
        'Next
        '<<2018/1/31 佐川 キャリア交換対応

        '前工程のデータが1件のみで、MSラックNo2が空文字の場合は許可する。
        If preRackNoCount = 1 And txtData.Tag.Equals("01") Then
            If txtData.Text.Equals("") Then
                procCheckResult = True
            End If
        End If

        '受入MSラックNo1,2の重複チェック
        If txt0002.Text.Equals(txt0102.Text) Then
            setCheckInfo(getMsgStr("MSG00064", lbl0100.Text))
            '>> 2018/2/22 佐川 ラックNo入力動作を統一
            If txtData.Tag.Equals("01") Then
                lbl0102.BackColor = Color.Red
                txt0102.BackColor = Color.Red
            Else
                lbl0002.BackColor = Color.Red
                txt0002.BackColor = Color.Red

            End If
            'checkColor(sender, False, lblData.Name)
            txtData.Enabled = True
            txtData.SelectAll()
            '<< 2018/2/22 佐川 ラックNo入力動作を統一
            m_iScore(idx) = 0
            Return False
        End If

        '前工程データに一致しない場合
        If Not procCheckResult Then
            setCheckInfo(getMsgStr("MSG00052", lbl0100.Text))
            checkColor(sender, False, lblData.Name)
            m_iScore(idx) = 0
            '>> 2018/2/22 佐川 ラックNo入力動作を統一
            txtData.Enabled = True
            txtData.SelectAll()
            '<< 2018/2/22 佐川 ラックNo入力動作を統一
            Return False
        End If
        '>>20180313 大賀 搬送容器桁数チェックを共通化
        If Not txtData.Text.Equals("") Then
            ' ラックNoの桁数チェック
            If Not isCheckCaseLength(txtData, MS_RACK_CASE_NO_LENGTH, lblData) Then
                Return False
            End If
        End If
        '<<20180313 大賀 搬送容器桁数チェックを共通化

        checkColor(sender, True, lblData.Name)
        m_iScore(idx) = 1
        CheckCollScore()
        Return True
    End Function
    'DEL 苗 2018/1/24 BEGIN
    ''ADD 2018/1/5 苗 BEGIN
    '' 情報タブの前工程データ取得
    'Protected Sub getPreInfoTabData()

    '    Dim Pre_Proc_Table As String = ""
    '    Dim Pre_Proc_Code As String = ""
    '    ' 前工程取得
    '    Dim dtPreProc = m_cData.GetPreProcCode(lblLotNo.Text, lblProcessCD.Text)
    '    If dtPreProc.Rows.Count > 0 Then
    '        ' 前工程の結果テーブル名設定
    '        Pre_Proc_Table = dtPreProc.Rows(0)("PROCTABLE")
    '        ' 前工程の工程コード設定
    '        Pre_Proc_Code = dtPreProc.Rows(0)("PREPROC")

    '        dtDetailData = New DataTable

    '        ' 着工前の場合は、前工程のデータを取得する。
    '        If IcTag.Status = TagProcessStatus.Ready Then
    '            ' 前工程の計上データ取得
    '            dtDetailData = m_cEquipMat.GetDetailResult(lblLotNo.Text, Pre_Proc_Code, TOTAL, Pre_Proc_Table)
    '            For Each dr In dtDetailData.Rows
    '                '取得データが存在した場合は値を設定する。
    '                If dr(DB_WORK_RESULT_PHYSICALNAME_MNF_CND_TAG).Equals(lblFrameCountText.Tag) Then
    '                    '廃棄フレーム枚数に値を設定
    '                    lblFrameCount.Text = dr(DB_WORK_RESULT_PHYSICALNAME_ACTUAL_MODEL)
    '                End If
    '            Next
    '        End If
    '    End If
    'End Sub
    'DEL 苗 2018/1/24 END

    '計上完成正常時の画面初期化
    Protected Overrides Sub initializForm()
        MyBase.initializForm()
        InputDataClear()
        txt0102.Focus() 'ADD 苗 2019/11/24
    End Sub
    'ADD 苗 2018/1/24 BEGIN
    '製造完成
    Protected Overrides Function ManufCompCheck() As Boolean
        Return EndCheck()
    End Function
    'ADD 苗 2018/1/24 END

    '受入MSラックNoタブキー対応
    Private Sub beforeRackNo_PreviewKeyDown(ByVal sender As Object, ByVal e As PreviewKeyDownEventArgs) Handles txt0002.PreviewKeyDown, txt0102.PreviewKeyDown
        'タブキーが押下された場合は、改行コードと見なし処理を行う
        If e.KeyCode = Keys.Tab Then
            e.IsInputKey = True
            beforeRackNo_KeyPress(sender, New KeyPressEventArgs(vbCr))
        End If
    End Sub

    '>>2018/1/31 佐川 キャリア交換対応
    'IcTag保存内容設定
    Protected Overrides Sub icTagDataSet()
        '製造完成、計上完成時は画面入力値の値を設定する。
        If execMode.Equals(COMPLETE) Or execMode.Equals(TOTAL) Then
            'CASEの値は変更しないため何も処理しない。
        Else
            '初期値をそのまま保存するため、変更しない。
        End If
    End Sub
    '<<2018/1/31 佐川 キャリア交換対応

    '>>2018/2/15 大賀 サンプル数量対応 DBの制約のため分割して保存する
    ' サンプル数量の履歴明細への書き込み
    ' 改行で分割して保存する
    Private Function writeDetailSampleNum(rowsCnt As Integer, addIndex As Integer) As Integer
        Dim seqCount = 1
        For Each oneLine In lblSampleText.Text.Split(vbCrLf)
            dtDBUpd.Rows.Add()
            dtDBUpd.Rows(rowsCnt + addIndex)("MNF_CND_TAG") = lblSampleTitle.Tag
            dtDBUpd.Rows(rowsCnt + addIndex)("MNF_CND_TAG_FLG") = CND_TAG_FLG_ELSE
            dtDBUpd.Rows(rowsCnt + addIndex)("SEQ") = seqCount
            dtDBUpd.Rows(rowsCnt + addIndex)("ACTUAL_MODEL") = oneLine
            addIndex += 1
            seqCount += 1
        Next
        Return addIndex
    End Function

    ' 明細履歴からの読み出し
    ' 読み出した文字列を改行で連結してラベルに反映する
    Private Sub readDetailSampleNum()
        Dim readText = String.Empty
        For Each oneLine In dtDetailData.AsEnumerable().Where(Function(x) lblSampleTitle.Tag.Equals(x("MNF_CND_TAG"))).Select(Function(x) x("ACTUAL_MODEL")).ToList()
            readText += IIf(String.IsNullOrEmpty(readText), oneLine, vbCrLf + oneLine)
        Next
        lblSampleText.Text = readText
    End Sub
    '<<2018/2/15 大賀 サンプル数量対応 DBの制約のため分割して保存する

    '>> 2018/02/15 佐川 金型連続使用チェック
    '金型検査ボタン押下処理
    Private Sub btnMoldInspection_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        If btnMoldInspection.Text.Equals(getMsgStr("MSG10026")) Then
            '未実施の場合は、実施済みに変更
            btnMoldInspection.Text = getMsgStr("MSG10027")
            isInspectionFlg = True
        Else
            '実施済みの場合は、未実施に変更
            btnMoldInspection.Text = getMsgStr("MSG10026")
            isInspectionFlg = False
        End If
    End Sub

    Protected Overrides Sub CheckCollScore()

        '開始作業者Noが未入力の場合は処理しない
        If txtOptNoStt.TextLength <= 0 Then
            Exit Sub
        End If

        Dim sum As Integer = 0
        For Each i As Integer In m_iScore
            sum += i
        Next
        If sum >= PASS_SCORE AndAlso lotCheckFlg = 1 Then
            '金型検査のチェックを行う
            checkMoldInspection()
            MyBase.CheckCollScore()
        End If
    End Sub

    '金型検査チェックを行う。
    Private Sub checkMoldInspection()
        '初期化
        isMoldCheckFlg = False

        '金型点検実施情報取得
        dtMoldInspectionData = New DataTable
        dtDetailData = m_cDbMold.GetMoldInspection(lblProcessCD.Text, g_EQUIP_NO)

        '<< 2018/02/19 佐川 DBが0件時の処理
        If dtDetailData.Rows.Count = 0 Then
            setCheckInfo(getMsgStr("MSG10025"))
            isMoldCheckFlg = True
            'bSite再取得（製造完成or計上完成）の場合は、ボタンの制御を行う
            If execMode.Equals(COMPLETE) Or execMode.Equals(TOTAL) Then
                btnMoldInspection.Enabled = isMoldCheckFlg
            End If
            Exit Sub
        End If
        '>> 2018/02/19 佐川 DBが0件時の処理 

        Dim timeCheck As Boolean = False
        'ADD 苗 2018/4/2 BEGIN
        If IsNothing(outMachine) Then

            setCheckInfo(getMsgStr("MSG00033"))
            lotCheckFlg = False
            Exit Sub
        End If
        'ADD 苗 2018/4/2 END
        For Each item As InSiteWebService.Machine_SubMachine In outMachine.MachineInf.SubMachineInf
            Dim modlCheck As Boolean = False
            If item.MachineCategory.Equals(MOLD_CATEGORY_NAME) Then
                For i = 0 To dtDetailData.Rows.Count - 1
                    '金型型番号と金型ロット番号が一致している場合
                    '>> 20810322 大賀 No101 金型ロット番号がbSiteから応答されないと着工時異常終了する
                    'If item.MachineTypeCode.Equals(dtDetailData(i)("MOLD_MODEL")) And item.Name.Equals(dtDetailData(i)("MOLD_LOT_NO")) Then
                    Dim mTypeCode = IIf(item.MachineTypeCode Is Nothing, String.Empty, item.MachineTypeCode)
                    Dim mName = IIf(item.Name Is Nothing, String.Empty, item.Name)
                    If mTypeCode.Equals(dtDetailData(i)("MOLD_MODEL")) And mName.Equals(dtDetailData(i)("MOLD_LOT_NO")) Then
                        '<< 20810322 大賀 No101 金型ロット番号がbSiteから応答されないと着工時異常終了する
                        modlCheck = True

                        '時間計算を行う
                        Dim ts As New TimeSpan(Now().Subtract(dtDetailData(i)("INSPECTION_DATE_TIME")).Ticks)
                        If ts.Days >= 2 Then 'UPD MiaoJF 2019/8/28 24H->48H
                            'setCheckInfo(getMsgStr("MSG10024"))
                            'setChangeForPQC("SF ", "金型", "金型交换", "")

                            isMoldCheckFlg = True
                            timeCheck = True
                            Exit For
                        Else
                            '金型が一致してる、かつ検査時間範囲内の場合は次のループに移る
                            Exit For
                        End If

                    End If
                Next
                '一致金型が存在しない場合はメッセージを表示する。
                If Not modlCheck Then
                    setCheckInfo(getMsgStr("MSG10025"))
                    isMoldCheckFlg = True
                    Exit For
                End If
                '前回実施時間から1日以上経過している場合はループを抜ける
                If timeCheck Then
                    Exit For
                End If
            End If
        Next


        'bSite再取得（製造完成or計上完成）の場合は、ボタンの制御を行う
        If execMode.Equals(COMPLETE) Or execMode.Equals(TOTAL) Then
            btnMoldInspection.Enabled = isMoldCheckFlg
        End If
    End Sub
    '<< 2018/02/15 佐川 金型連続使用チェック

    '>> 2018/2/22 佐川 ラックNo入力動作を統一
    ' ラックNo用バーコードクリック
    Protected Sub btnMsRackNo_Click(ByVal sender As Object, ByVal e As EventArgs)

        ' 入力フォーカスの設定
        Dim btn As Button = CType(sender, Button)
        Dim txtData As TextBox = btn.Parent.Controls.Find(String.Format("txt{0}02", btn.Tag.ToString), False)(0)
        Dim lblData As Label = txtData.Parent.Controls.Find(String.Format("lbl{0}02", txtData.Tag.ToString), False)(0)
        Dim textData2 As TextBox = btn.Parent.Controls.Find(String.Format("txt0{0}02", (CInt(btn.Tag) + 1).ToString), False)(0)
        Dim lblData2 As Label = txtData.Parent.Controls.Find(String.Format("lbl0{0}02", (CInt(btn.Tag) + 1).ToString), False)(0)

        txtData.Text = String.Empty
        textData2.Text = String.Empty
        txtData.Enabled = True
        txtData.Focus()
        txtData.SelectAll()
        txtData.BackColor = FOCUS_INIT_COLOR
        lblData.BackColor = FOCUS_INIT_COLOR
        textData2.BackColor = FOCUS_INIT_COLOR
        lblData2.BackColor = FOCUS_INIT_COLOR

    End Sub

    '<< 2018/2/22 佐川 ラックNo入力動作を統一

    ' >> 20180307 大賀 作業者入力確定時に次の入力にフォーカスを移動する
    ''' <summary>
    ''' 作業者入力後のフォーカスを各画面で設定する
    ''' 各画面でオーバーライドされない場合はTabIndex順に移動する
    ''' </summary>
    ''' <param name="inputType">作業者入力タイプ</param>
    ''' <param name="nowControl">対象コントロール</param>
    Protected Overrides Sub setNextFocus(ByVal inputType As OPERATER_INPUT_TYPE, ByVal nowControl As Control)
        If m_ProcessStatus <> ProcessStatus.Ready Then  ' ロット未入力の場合は処理しない
            If IcTag.Status = TagProcessStatus.Ready Then   ' 未着工
                If inputType = OPERATER_INPUT_TYPE.START_OPE Then
                    tabBase.SelectedTab = TabPageSp ' タブの移動
                    If String.IsNullOrEmpty(txt0002.Text) Then  ' 未入力の場合に入力可能にする
                        btnBarCode1.PerformClick()  ' バーコード入力ボタンを押す
                        Exit Sub
                    End If
                End If
            ElseIf IcTag.Status = TagProcessStatus.Processing Then  ' 着工中
            ElseIf IcTag.Status = TagProcessStatus.ManufComplete Then ' 製造完成

            End If
        End If
        ' 各画面個別のフォーカスに移動しない場合は次のTabIndexに移動
        SelectNextControl(nowControl, True, True, True, True)
    End Sub
    ' << 20180307 大賀 作業者入力確定時に次の入力にフォーカスを移動する

    ' >> 20180710 佐川 ラックNo途入力改善
    Public Overrides Sub rackInputFocus(ByVal sender As Object, ByVal e As System.EventArgs)
        '未着工のみ選択可能にする
        If IcTag.Status = TagProcessStatus.Ready Then
            MyBase.rackInputFocus(sender, e)
        End If
    End Sub
    ' << 20180710 佐川 ラックNo途入力改善

    Overrides Function chkMatChanged() As Boolean
        Dim pqc As New clsPQCCheck
        Dim katamei As String = ""
        Dim matlot As String = ""
        Dim rtn As Boolean = False

        pqc.selectPQC(lblEquipID.Text, katamei, matlot)

        Dim mold1 As String = txt0303.Text
        Dim mold2 As String = txt0403.Text
        Dim mold3 As String = txt0503.Text
        Dim mold4 As String = txt0603.Text

        If katamei = "" And mold1 <> "" And mold2 <> "" And mold3 <> "" And mold4 <> "" Then
            pqc.insertPQC(lblEquipID.Text, mold1 & "/" & mold2 & "/" & mold3 & "/" & mold4, "")
            rtn = False
        End If
        If katamei <> "" Then

            If katamei.Contains(mold1) And katamei.Contains(mold2) And katamei.Contains(mold3) And katamei.Contains(mold4) Then
                rtn = False
            Else
                If mold1 & "/" & mold2 & "/" & mold3 & "/" & mold4 <> "///" Then
                    pqc.updatePQC(lblEquipID.Text, mold1 & "/" & mold2 & "/" & mold3 & "/" & mold4, "")
                    setChangeForPQC("SF ", "金型", "金型交换", "")
                End If

                rtn = True
            End If
        End If
        Return rtn
    End Function

    '----------2021 DC、TC、LTF自动着工对应0619 begin
    Public Overrides Function doCommandLH() As Object
        Return False
    End Function

    Protected Overrides Sub setBeforeRackNo(Optional inputRackNo As String = "")

        If CUSTOMIZES_DC_TC_LTF_AUTO = True Then

            If IsNothing(IcTag.szLotNo) = False Then
                If IcTag.container1 <> "" Then
                    txt0002.Text = IcTag.container1
                    m_iScore(CInt(txt0002.Tag)) = PASS_SCORE_CHECKED
                End If
                If IcTag.container1 <> "" Then
                    txt0102.Text = IcTag.container2
                    m_iScore(CInt(txt0102.Tag)) = PASS_SCORE_CHECKED
                End If
            End If

        End If
    End Sub

    Protected Overrides Function setAfterRackNo(receiveData As receiveCommandData) As Boolean
        Return True
    End Function

    Protected Overrides Sub setAutoScreen(mode As Boolean)

        Dim setColor As Color = NORMAL_INIT_COLOR
        Dim setEnabled As Boolean = Not (mode)

        '完工后，是否清空画面，清空后ictag也被清空（手动时为true,自动时为false)
        initializForm_FLG = setEnabled

        If mode = True Then
            setColor = NORMAL_INIT_COLOR
        Else
            setColor = BUTTON_INIT_COLOR
        End If
        txt0002.Enabled = setEnabled
        txt0102.Enabled = setEnabled

        lbl0002.BackColor = setColor
        txt0002.BackColor = setColor

        lbl0102.BackColor = setColor
        txt0102.BackColor = setColor

    End Sub
    Overrides Sub setinitializForm_FLG()
        initializForm_FLG = True
    End Sub

    '----------2021 DC、TC、LTF自动着工对应0619 end

End Class
